package pkg.finalproyectEJB;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * Clase Carro es utilizada para generar una compra del usuario esta es
 * generada principalmente al final de la compra.
 * 
 * @author lorenzoveas.trainee@tinet.cl
 * @author Lorenzo Andres Veas Veas.
 */
@Entity
@Table(name = "carro")
public class Carro implements Serializable {

    /**
     * doc information expected for serialVersionUID attribute.
     */
    private static final long serialVersionUID = 1L;

    /**
     * Atributo ID_CARRO es el identificador de clase Carro.
     */
    @Id
    @GeneratedValue
    private int ID_CARRO;
    /**
     *  Atributo nombreUsuario es el nombre hace referencia a la Tabla Usuario
     */
    @Column(name = "NOMBRE_USUARIO")
    private String nombreUsuario;
    /**
     * Atributo compraFinalizada el aquel que muestra si la compra ha sido
     * finalizada.
     */
    @Column(name = "COMPRA_FINALIZADA")
    private int compraFinalizada;
    /**
     * Atributo fechaCompra es la fecha en la cual se realizo la compra.
     */
    @Column(name = "FRCHA_COMPRA")
    private Date fechaCompra;

    /**
     * Constructor creado por defecto del a clase Carro
     * 
     */
    public Carro() {

    }

    /**
     * Constructor que asigna los atributos de la clase Carro.
     * 
     * @param nombreUsuario
     *            asigna el nombre de usuario al Carro.
     * @param compraFinalizada
     *            asigna un 1 si la compra esta finalizada.
     * @param fechaCompra
     *            asigna la fecha de compra de los productos.
     */
    public Carro(String nombreUsuario, int compraFinalizada, Date fechaCompra) {

        this.nombreUsuario = nombreUsuario;
        this.compraFinalizada = compraFinalizada;
        this.fechaCompra = fechaCompra;
    }

    /**
     * Permite Capturar el valor del Atributo iD_CARRO.
     * 
     * @return El valor iD_CARRO.
     */
    public int getID_CARRO() {
        return ID_CARRO;
    }

    /**
     * Permite asignar el valor del atriburo iD_CARRO attribute value.
     * 
     * @param iD_CARRO
     *            Nuevo valor para el atributo iD_CARRO.
     */
    public void setID_CARRO(int iD_CARRO) {
        ID_CARRO = iD_CARRO;
    }

    /**
     * Permite Capturar el valor del Atributo nombreUsuario.
     * 
     * @return El valor nombreUsuario.
     */
    public String getNombreUsuario() {
        return nombreUsuario;
    }

    /**
     * Permite asignar el valor del atriburo nombreUsuario attribute value.
     * 
     * @param nombreUsuario
     *            Nuevo valor para el atributo nombreUsuario.
     */
    public void setNombreUsuario(String nombreUsuario) {
        this.nombreUsuario = nombreUsuario;
    }

    /**
     * Permite Capturar el valor del Atributo compraFinalizada.
     * 
     * @return El valor compraFinalizada.
     */
    public int getCompraFinalizada() {
        return compraFinalizada;
    }

    /**
     * Permite asignar el valor del atriburo compraFinalizada attribute value.
     * 
     * @param compraFinalizada
     *            Nuevo valor para el atributo compraFinalizada.
     */
    public void setCompraFinalizada(int compraFinalizada) {
        this.compraFinalizada = compraFinalizada;
    }

    /**
     * Permite Capturar el valor del Atributo fechaCompra.
     * 
     * @return El valor fechaCompra.
     */
    public Date getFechaCompra() {
        return fechaCompra;
    }

    /**
     * Permite asignar el valor del atriburo fechaCompra attribute value.
     * 
     * @param fechaCompra
     *            Nuevo valor para el atributo fechaCompra.
     */
    public void setFechaCompra(Date fechaCompra) {
        this.fechaCompra = fechaCompra;
    }

}
